package untiring07;

public class J09_While {

	// 반복문 loop
	// 가끔 어떤 동작을 여러 번 수행해야 할 때가 있음
	// 코드를 복사해서 반복을 해도 해결되지 않는 문제 발생
	// 반복횟수가 5번이면 코드 줄수도 5줄 작성
	// 코드내 내용이 수정되면 그 사본도 수정
	
	// 이것에 대한 현명한 방법은 
	// 반복문 안에 코드를 넣는것
	// 즉, 반복할 코드를 한줄만 작성하고
	// 컴파일러에게 이 코드를 몇번이고
	// 반복실행하라고 지시할 수 있음

	// 반복문의 종류
	//while , do-while , for
	
	//while
	//while (조건식){
	//			문장;
	// }
	// 조건식의 결과가 참이면 블록안의 문장이 실행되고 다시 조건식을 검사
	// 따라서, 반복 실행을 중단하려면 조건식의 결과가 거짓이 되도록 만들거나
	// break 문을 사용하면됨 
	
	// 반복문의 처리 과정을 단계별로 파악하려면
	// 통합개발 환경의 디버깅 기능을 이용하면됨
	
	// break, continue
	// break  문은 while , do- while , for 문의 반복실행을 중단하기 위해 사용
	// break 문을 아무대나 사용하면 컴파일 오류 발생
	
	// continue문은 while , do- while , for문의
	// 현재 반복을 중단하고 다음 반복의 시작으로 제어를 넘김
	
	
	
	public static void main(String[] args) {
		// 반복 처리문을 사용하지 않았을 떄
		System.out.println("선생님 ~ 사랑해요~");//1번
		
		System.out.println("선생님 ~ 사랑해요~");//3번
		System.out.println("선생님 ~ 사랑해요~");
		System.out.println("선생님 ~ 사랑해요~");
		
		System.out.println("선생님 ~ 사랑해요~");//5번
		System.out.println("선생님 ~ 사랑해요~");
		System.out.println("선생님 ~ 사랑해요~");
		System.out.println("선생님 ~ 사랑해요~");
		System.out.println("선생님 ~ 사랑해요~");
		
		// 문제 1: 반복문을 사용하지 않고 '시간은 금이라구 , 친구 !!'라는 문장을 5번 반복출력
		System.out.println(" '시간은 금이라구, 친구!!' ");
		System.out.println(" '시간은 금이라구, 친구!!' ");
		System.out.println(" '시간은 금이라구, 친구!!' ");
		System.out.println(" '시간은 금이라구, 친구!!' ");
		System.out.println(" '시간은 금이라구, 친구!!' "); 
		
		// 반복문을 이용하면 다음과 같음		
		int count = 0;
		while (count < 5 ){
		System.out.println(" '시간은 금이라구, 친구!!' ");
			          ++count;
		}
		// 문제 2 :  반복문을 사용하지 않고
		// 			1~10 까지 출력하는 프로그램
		System.out.println(1);
		System.out.println(2);
		System.out.println(3);
		System.out.println(4);
		System.out.println(5);
		System.out.println(6);
		System.out.println(7);
		System.out.println(8);
		System.out.println(9);
		System.out.println(10);
				
				// 반복문을 이용하면 다음과 같음
		count = 1;
		while ( count <= 10) {
		System.out.println(count);
		++count;
		}
		// 문제 3 : 반복문을 이용해서
		// 구구단의 19단을 출력해봄
		// 19 x 1 = 19 
		// 19 x 2 = 38 
		// ... 
		// 19 x 19 = 361
		
	   /*count = 1;
		int b = 1;
		while (count <= 19 ){
			b = 19*count;
			System.out.println("19 x "+ count +" = "+ b);
		++count;
		} */
		count = 1;
		while (count <= 19 ){
			System.out.println("19 x "+ count +" = "+ 19*count);
		++count;
		}	
		//문제 4 : 반복문과 break 를 이용해서 
		// 1~10까지 출력하는 프로그램
		count = 1;
		while ( count <= 10) {
		System.out.println(count);
		++count;
		}//break 를 사용하지 않음
		count = 1;
		while ( true ) {
			if(count == 11)break;
		System.out.println(count);
		++count;
		}// break를 사용함
		
		// 문제 5 : 반복문과 continue 를 이용해서 1~10 까지 출력하는 프로그램
		// 단 , 5는 출력하지 않음
	   count = 1;
		while ( count <= 10) {
			 if (count != 5)
		System.out.println(count);
			++count;
		} // continue 를 사용하지 않았을 때
		
		   count = 0;
			while ( count <= 10) {
			if (count == 5){++count; continue;}
			System.out.println(count);
			++count;
			}// continue 를 사용할 때
		
			// 문제 6: 1~100 사이에 짝수만 출력하는 프로그램
			 count = 1;
				while ( count <= 100) {
					 if (count % 2 == 0)
				System.out.println(count);
					++count;
				} 
			// 문제 7: 1~100 사이에 홀수만 출력하는 프로그램
				 count = 1;
					while ( count <= 100) {
						 if (count % 2 == 1)
					System.out.println(count);
						++count;
					} 
		
					
		
	}
}
